﻿using CAD.BLL;
using CAD.DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WFASmartketing.PRESENTACION_COMPRAS
{
    public partial class AddProducto : Form
    {
        private RegistroCompras principal;
        private int pkProducto=0;

        public AddProducto(RegistroCompras principal)
        {
            InitializeComponent(); this.principal = principal; textBox1.Focus();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.producto_SelectLikeTableAdapter.Fill(this.productoDS.producto_SelectLike, "%" + textBox1.Text + "%");
            this.dataGridView1.Refresh();
            agarrarFilaAlCargar();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

           
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            UTIIIDADES.UTILIDADES.Mayuscula(e);
            
        }

        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            UTIIIDADES.UTILIDADES.soloDecimanes(e, txtcosto);
          
        }

        private void textBox4_KeyPress(object sender, KeyPressEventArgs e)
        {
            UTIIIDADES.UTILIDADES.soloEnteros(e);
         
        }

        private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
            UTIIIDADES.UTILIDADES.soloDecimanes(e, txttotal);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            producto pro = productoBLL.SelectByID(pkProducto);
            int cantidad=0;
            try{
                pro.Costocompra=Convert.ToDouble(txtcosto.Text);
                cantidad=Convert.ToInt32(txtcantidad.Text);
            }catch(Exception ex){
                MessageBox.Show(this, "Algunos datos estan en mal formato", "ADVERTENCIA");     
                return;
            }
            principal.cargarProductoalGrid(pro, cantidad);
            this.Hide();
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            agarrarFilaAlCargar();
        }
        private void agarrarFilaAlCargar() {

            if (dataGridView1.CurrentRow != null)
            {
                int id = (int)dataGridView1.CurrentRow.Cells[0].Value;
                pkProducto = id;
                producto pro = productoBLL.SelectByID(pkProducto);
                txtcosto.Text = pro.Costocompra + "";
                double Costocompra = pro.Costocompra;
                txttotal.Text = Costocompra + "";
            }
        }

        private void txtcantidad_KeyDown(object sender, KeyEventArgs e)
        {
           
         

        }

        private void txtcantidad_TextChanged(object sender, EventArgs e)
        {
            calculoDeCostos();
        }
        private void calculoDeCostos() {
            string cantidadstr = txtcantidad.Text;
            int cantidad = 1;
            try
            {
                cantidad = Convert.ToInt32(cantidadstr);
            }
            catch (Exception ex)
            {
                txtcantidad.Text = "1";
            }
            string costostr = txtcosto.Text;
            double costo = 0;
            try
            {
                costo = Convert.ToDouble(costostr);
            }
            catch (Exception ex)
            {
                txtcosto.Text = "0";
            }
            double total = costo * cantidad;
            txttotal.Text=total+"";
        }
        private void txtcosto_TextChanged(object sender, EventArgs e)
        {
            calculoDeCostos();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            this.producto_SelectLikeTableAdapter.Fill(this.productoDS.producto_SelectLike, "%" + textBox1.Text + "%");
            this.dataGridView1.Refresh();
            agarrarFilaAlCargar();
        }
    }
}
